#ifndef _CLOCK_H
#define _CLOCK_H

class City;

class Clock
{
    public:
    Clock(City* city);

    void update(double dt);

    enum SimSpeed
    {
        SPEED_PAUSE = 0,
        SPEED_SLOWER,
        SPEED_SLOW,
        SPEED_NORMAL,
        SPEED_FAST,
        SPEED_FASTER
    };

    void    setSpeed(Clock::SimSpeed speed);
    void    increaseSpeed();
    void    decreaseSpeed();

    private:
    City* city;

    // Game Speed
    SimSpeed        speed;
    unsigned long   numTicks;
    int             framesSinceLastTick;
    unsigned int    framesPerTick;

    // Game Time

    // Game calendar

};

#endif
